package com.hbzhit.modules.act.dao;

import com.hbzhit.common.utils.MybatisCache;
import com.hbzhit.modules.sys.entity.SysDictValEntity;
import org.apache.ibatis.annotations.CacheNamespace;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 流程任务
 *
 * @author DING
 * @date 2019-08-21
 */
@Mapper
@Repository
@CacheNamespace(implementation = MybatisCache.class, eviction = MybatisCache.class)
public interface TaskDao {
    /**
     * 待办任务数量统计
     * @param userId 用户id
     * @param orgId 组织id
     * @param tableName 业务表名
     * @param typeField 类型字段名
     * @param typeCode 类型编码
     * @return 类型集合
     */
    List<SysDictValEntity> countTypeTask(@Param("userId") Long userId,
                                     @Param("orgId") Long orgId,
                                     @Param("tableName") String tableName,
                                     @Param("typeField") String typeField,
                                     @Param("typeCode") String typeCode);

    /**
     * 待办任务数量统计
     * @param userId 用户id
     * @param orgId 组织id
     * @param tableName 业务表名
     * @return 待办数
     */
    Integer countTask(@Param("userId") Long userId,
                      @Param("orgId") Long orgId,
                      @Param("tableName") String tableName);
}
